#include<stdbool.h>

#define MAXSIZE 100          //假设非零元个数的最大值为100
typedef int ElemType;

typedef struct {
    int i,j;									//非零元的行下标和列下标，i 和 j 从 1 开始计数，与数学中矩阵元素的编号一致
    ElemType e;						//非零元的值
}Triple;

typedef struct {
    Triple data[MAXSIZE];			// 非零元三元组表
    int    m, n, len;							// 矩阵的行数、列数和非零元个数
}TSMatrix;

// ------------
// |   TEST   | 
// ------------ 

TSMatrix constructMatrix(int n, int m) {
    TSMatrix matrix;
    matrix.n = n, matrix.m = m, matrix.len = 0;
    for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) {
        int x; scanf("%d", &x);
        if(!x) continue;
        matrix.data[matrix.len].i = i;
        matrix.data[matrix.len].j = j;
        matrix.data[matrix.len].e = x;
        ++matrix.len;
    }
    return matrix;
}

void print(TSMatrix mat) {
    printf("%d %d %d\n----------------------\n", mat.n, mat.m, mat.len);
    for(int i=0;i<mat.len;i++)
        printf("%d %d %d\n", mat.data[i].i, mat.data[i].j, mat.data[i].e);
}